﻿using System;
using System.Collections.Generic;

namespace CQRS.Events
{
    public interface IEventRepository<TEvent> : ISnapshotRepository<TEvent> where TEvent : Event
    {
        IEnumerable<TEvent> GetAllEvents(Guid eventProviderId);
        IEnumerable<TEvent> GetEventsSinceLastSnapshot(Guid eventProviderId);
        long GetEventCountSinceLastSnapshot(Guid eventProviderId);
        void Save(IEventProvider<TEvent> eventProvider);
    }
}